<?php

/* Guarda las respuestas de la practica */
require_once '../funciones/funciones.php';
require_once '../funciones/validaciones.php';
$con = new MySQL();
$respNivel = "";
$termina = $_POST["siTermina"];
$evalId = $_POST["evalId"];
$transa = $_POST["transa"];
$participante = $_SESSION["partId"];

switch ($_POST["tipo"]) {
    case "T": //la pregunta es de tipo teorica
        $sql = "select * from distractores where distraId = '{$_POST["resp"]}' and pregId = '{$_POST["pregId"]}'";
        $result = $con->consulta($sql);
        $result = $con->unaFila($result);
        $sql = "insert into evaluacionesypruebasdet(evaldetFec,pregId,distraId,evalId,evaldetResultado) values(";
        $sql .= "now(),'{$_POST["pregId"]}','{$_POST["resp"]}','$evalId','{$result["distraClave"]}')";
        $result = $con->consulta($sql);
        break;
    case "P": //la pregunta es de tipo practica
        $sql = "insert into evaluacionesypruebasdet(evaldetFec,pregId,evalId,evaldetResultado) values(";
        $sql .= "now(),'{$_POST["pregId"]}','$evalId','{$_POST["respCorrecta"]}')";
        $result = $con->consulta($sql);
        break;
}
if ($termina == "No") {
    //verifica si aumenta de nivel
    $subeNivel = subeNivel($con,$_POST["transa"]);
    //Asigna la siguiente pregunta
    $temporalId = sigPregunta($_POST["transa"], $_POST["numPreg"], $con, $_POST["evalId"]);
    echo $temporalId . "|" . $subeNivel;
} elseif ($termina == "Si") {
    /*     * **CALIFICA********** */
    //optiene total malas
    $sql = "select count(evaldetId) as malas from evaluacionesypruebasdet where evalId = '$evalId' and evaldetResultado = '0'";
    $result = $con->consulta($sql);
    $totMalas = mysql_result($result, 0, "malas");
    //optiene total Buenas
    $sql = "select count(evaldetId) as buenas from evaluacionesypruebasdet where evalId = '$evalId' and evaldetResultado = '1'";
    $result = $con->consulta($sql);
    $totBuenas = mysql_result($result, 0, "buenas");
    $valorPorNota = 5 / ($totBuenas + $totMalas);
    $nota = $valorPorNota * $totBuenas;
    $sql = "update evaluacionesypruebas set evalCalificacion = '$nota' where evalId = '$evalId'";
    $con->consulta($sql);
    /*     * **FIN CALIFICA********** */
    /*     * **SUGERENCIAS********** */
    /* Obtiene la transaccion para el manejo de las sugerencias */
    $sql = "update sistema set transaccion = transaccion + 1";
    $result = $con->consulta($sql);
    $sql = "select transaccion from sistema";
    $result = $con->consulta($sql);
    $transaccion = mysql_result($result, 0, "transaccion");
    //Sugerencias Preguntas Practicas
    $sql = "select suger.sugerId from sugerencias suger
                inner join errores err on err.subtemaId = suger.subtemaId
                inner join temporal temp on temp.tempIndVar1 = err.errorCod
                where temp.transaccion = '$transa' and tempIndVar2 = 'errores'";
    $result = $con->consulta($sql);
    $cuentaSugerPr = $con->numeroFilas($result);
    if ($cuentaSugerPr > 0) { //unicamente ejecuta si hay sugerencias
        while ($row = $con->unaFila($result)) {
            $sql = "insert into temporal(transaccion,tempIndVar1) values(
                    '$transaccion','{$row["sugerId"]}')";
            $con->consulta($sql);
            //$participante
        }//fin while($row = $con->unaFila($result)){
    }
    //Sugerencias Teoricas
    $sql = "select suger.sugerId from sugerencias suger
                inner join preguntas preg on preg.subtemaId = suger.subtemaId
                inner join evaluacionesypruebasdet evaldet on evaldet.pregId = preg.pregId
                where evaldet.evalId = '$evalId' and evaldet.evaldetResultado = '0' and not exists
                (select tmp.tempId from temporal tmp where tmp.transaccion = '$transaccion' and tmp.tempIndVar1 = suger.sugerId)";
    $result = $con->consulta($sql);
    $cuentaSugerTeo = $con->numeroFilas($result);
    if ($cuentaSugerTeo > 0) {
        while ($row = $con->unaFila($result)) {
            $sql = "insert into temporal(transaccion,tempIndVar1) values(
                    '$transaccion','{$row["sugerId"]}')";
            $con->consulta($sql);
        }//fin while($row = $con->unaFila($result)){
    }
    if ($cuentaSugerTeo > 0 || $cuentaSugerPr > 0) { //solo ejecuta si existio algun tipo de sugerencia
        /* Hasta este punto se tienen todas las posibles sugerencias en la temporal, ahora lo que se realiza es escoger tres sugerencias que no se le hallan mostrado al usuario y esas seran las nuevas sugerencias que se mostraran */
        $sql = "select tmp.tempIndVar1 from temporal tmp
                where tmp.transaccion = '$transaccion' and not exists
                (select * from sugerencias_por_participantes suger where suger.sugerId = tmp.tempIndVar1 and suger.partId = '$participante') limit 3";
        $result = $con->consulta($sql);
        $numero = $con->numeroFilas($result);
        $falta = 3;
        if ($numero <= 3 && $numero > 0) {
            $falta = 3 - $numero;
            while ($row = $con->unaFila($result)) {
                $sql = "insert into sugerencias_por_participantes(sugerId,partId) VALUES(
                        '{$row["tempIndVar1"]}','$participante')";
                $con->consulta($sql);
                $sql = "insert into temporal(transaccion,tempIndVar1,tempIndVar2) VALUES(
                        '$transa','{$row["tempIndVar1"]}','sugerencias')";
                $con->consulta($sql);
            }
        }
        if ($falta > 0) { //si es mayor que cero es por que falto alguna sugerencia
            $sql = "select tmp.tempIndVar1 from temporal tmp
                where tmp.transaccion = '$transaccion' order by tmp.tempVarchar1 desc";
            $result = $con->consulta($sql);
            for ($i = 0; $i < $falta; $i++) {
                $suger = mysql_result($result, $i, "tempIndVar1");
                $sql = "insert into temporal(transaccion,tempIndVar1,tempIndVar2) VALUES(
                        '$transa','$suger','sugerencias')";
                $con->consulta($sql);
            }
        }//fin if($falta >0){
        //En este punto ya se tienen las tres sugerencias que se van a enviar
        //para alivianar la temporal se elimina todo lo que exista en $transaccion
        $sql = "delete from temporal where transaccion = '$transaccion'";
        $con->consulta($sql);
    }
    echo $transa . "|-7";
}
?>